PDF Form Filler Fill out PDF forms automatically and extract data from completed forms. Overview This skill helps you: Fill PDF forms with provided data Extract data from filled forms Batch fill multiple forms Validate form data Create form-filling templates How to Use Fill a Form "Fill this PDF form with the following data: - Name: John Smith - Date: 2026-01-29 - Amount: $1,500" Extract Form Data "Extract all form field values from this PDF" "What data is filled in this form?" Batch Fill "Fill 50 copies of this form using data from the spreadsheet" "Generate forms for each row in this CSV" Form Field Types Supported Fields Field Type Description Fill Method Text Field Single/multi-line text Direct text entry Checkbox Yes/No selection Check/uncheck Radio Button One of many options Select option Dropdown List selection Choose value Date Field Date picker Date value Signature Digital signature Signature image/certificate Combo Box Dropdown with text entry Select or type Field Identification
Form Fields: [Form Name]
Field Map | Field Name | Type | Required | Page | Notes | |
|
|
|
|
| | applicant_name | Text | Yes | 1 | Max 50 chars | | birth_date | Date | Yes | 1 | MM/DD/YYYY | | gender | Radio | Yes | 1 | M/F/Other | | employed | Checkbox | No | 1 | Check if yes | | state | Dropdown | Yes | 2 | US states | | signature | Signature | Yes | 3 | Digital sig | Fill Templates Data Mapping Template
Form Fill Template: [Form Name]
Form Info
- **
- File
- **
-
application_form.pdf
- **
- Total Fields
- **
-
25
- **
- Required Fields
- **
- 15
Field Mappings ```yaml
Personal Information applicant_name: "${firstName} ${lastName}" date_of_birth: "${birthDate}" ssn_last_four: "${ssnLast4}" phone: "${phone}" email: "${email}"
Address street_address: "${address.street}" city: "${address.city}" state: "${address.state}" zip_code: "${address.zip}"
Employment currently_employed: ${isEmployed} # checkbox employer_name: "${employer.name}" job_title: "${employer.title}"
Selections payment_method: "${paymentMethod}" # dropdown agree_terms: true # checkbox Sample Data { "firstName" : "John" , "lastName" : "Smith" , "birthDate" : "1990-05-15" , "phone" : "555-123-4567" , "email" : "john.smith@email.com" , "address" : { "street" : "123 Main St" , "city" : "New York" , "state" : "NY" , "zip" : "10001" } , "isEmployed" : true , "employer" : { "name" : "Acme Corp" , "title" : "Manager" } , "paymentMethod" : "Direct Deposit" }
Output Formats
Fill Result Report
```markdown
Form Fill Result
Summary
| Status | Value |
|---|---|
| Form | application_form.pdf |
| Fields Filled | 23/25 |
| Errors | 2 |
| Output | filled_application.pdf |
| ### Filled Fields | |
| Field | Value |
| ------- | ------- |
| applicant_name | John Smith |
| date_of_birth | 05/15/1990 |
| phone | 555-123-4567 |
| state | NY |
| payment_method | Direct Deposit |
| ### Errors/Warnings | |
| Field | Issue |
| ------- | ------- |
| ssn | Field not found |
| signature | Requires certificate |
| ### Validation | |
| - ✅ All required fields filled | |
| - ✅ Date formats correct | |
| - ⚠️ Signature field needs manual completion | |
| Extracted Data Report | |
| ## | |
| Form Data Extraction | |
| ### | |
| Source: completed_form.pdf | |
| ### | |
| Extracted Values | |
| ```json | |
| { | |
| "form_title": "Employment Application", | |
| "submission_date": "2026-01-29", | |
| "fields": { | |
| "applicant_name": "Jane Doe", | |
| "date_of_birth": "1985-03-20", | |
| "email": "jane.doe@email.com", | |
| "phone": "555-987-6543", | |
| "address": "456 Oak Ave, Chicago, IL 60601", | |
| "position_applied": "Senior Developer", | |
| "salary_expectation": "$120,000", | |
| "available_start": "2026-03-01", | |
| "references_provided": true | |
| } | |
| } | |
| Field Statistics | |
| Metric | |
| Value | |
| Total fields | |
| 30 | |
| Filled fields | |
| 28 | |
| Empty fields | |
| 2 | |
| Extraction confidence | |
| 98% | |
| ## Batch Processing | |
| ### Batch Fill Job | |
| ```markdown | |
| ## Batch Form Fill | |
| ### Configuration | |
| - Template Form: w9_form.pdf | |
| - Data Source: vendors.csv | |
| - Records: 150 | |
| - Output Folder: /filled_w9s/ | |
| ### Data Preview | |
| Row | Name |
| ----- | ------ |
| 1 | Acme Corp |
| 2 | Beta LLC |
| ... | ... |
| ### Progress | |
| Status | Count |
| -------- | ------- |
| ✅ Completed | 145 |
| ⚠️ Warnings | 3 |
| ❌ Errors | 2 |
| ### Errors | |
| Row | Issue |
| ----- | ------- |
| 47 | Invalid TIN format |
| 89 | Missing required: Address |
| ### Output Files | |
| - w9_acme_corp.pdf | |
| - w9_beta_llc.pdf | |
| - ... | |
| Form Validation | |
| Validation Rules | |
| ## | |
| Form Validation Rules | |
| ### | |
| Field Validations | |
| Field | |
| Rule | |
| Error Message | |
| ------- | |
| ------ | |
| --------------- | |
| Valid email format | |
| "Invalid email address" | |
| phone | |
| 10 digits | |
| "Phone must be 10 digits" | |
| ssn | |
| XXX-XX-XXXX format | |
| "Invalid SSN format" | |
| date | |
| MM/DD/YYYY | |
| "Use MM/DD/YYYY format" | |
| zip | |
| 5 or 9 digits | |
| "Invalid ZIP code" | |
| amount | |
| Numeric, > 0 | |
| "Enter positive number" | |
| ### | |
| Cross-Field Validations | |
| Rule | |
| Fields | |
| Condition | |
| ------ | |
| -------- | |
| ----------- | |
| Conditional required | |
| employer_name | |
| Required if employed = true | |
| Date range | |
| end_date | |
| Must be after start_date | |
| Sum check | |
| item_totals | |
| Must equal grand_total | |
| Validation Report | |
| ## | |
| Pre-Fill Validation | |
| ### | |
| Data Validation Results | |
| Field | |
| Value | |
| Valid | |
| Issue | |
| ------- | |
| ------- | |
| ------- | |
| ------- | |
| john@email | |
| ❌ | |
| Missing domain | |
| phone | |
| 555-1234 | |
| ❌ | |
| Only 7 digits | |
| date | |
| 2026-01-29 | |
| ✅ | |
| - | |
| zip | |
| 10001 | |
| ✅ | |
| - | |
| ### | |
| Summary | |
| - | |
| ✅ Valid: 18 fields | |
| - | |
| ❌ Invalid: 2 fields | |
| - | |
| ⚠️ Warnings: 3 fields | |
| ### | |
| Recommendations | |
| 1. | |
| Fix email format: add domain (e.g., @company.com) | |
| 2. | |
| Complete phone number with area code | |
| Common Form Types | |
| Government Forms | |
| Form | |
| Purpose | |
| Key Fields | |
| W-9 | |
| Tax identification | |
| TIN, name, address | |
| I-9 | |
| Employment eligibility | |
| ID info, citizenship | |
| W-4 | |
| Withholding | |
| Allowances, status | |
| 1099 | |
| Contractor income | |
| Income, payer info | |
| Business Forms | |
| Form | |
| Purpose | |
| Key Fields | |
| NDA | |
| Confidentiality | |
| Parties, terms, dates | |
| Invoice | |
| Billing | |
| Items, amounts, terms | |
| PO | |
| Purchase order | |
| Items, quantities, vendor | |
| Application | |
| Various | |
| Personal info, history | |
| Tool Recommendations | |
| Desktop Software | |
| Adobe Acrobat Pro | |
| : Full form features | |
| Foxit PDF Editor | |
| : Good form support | |
| PDFescape | |
| : Free online option | |
| JotForm | |
| : Form creation and filling | |
| Programming Libraries | |
| pdf-lib | |
| (JavaScript): Fill and create forms | |
| PyPDF2 | |
| (Python): Basic form filling | |
| iText | |
| (Java/.NET): Enterprise forms | |
| PDFBox | |
| (Java): Apache project | |
| Automation Tools | |
| Adobe Acrobat Actions | |
| : Batch processing | |
| Power Automate | |
| : Microsoft integration | |
| Zapier + PDF.co | |
| : Cloud automation | |
| Limitations | |
| Cannot execute actual form filling (provides guidance) | |
| Digital signatures require proper certificates | |
| Some secured PDFs prevent form filling | |
| Complex calculations may not auto-update | |
| Flattened forms cannot be edited | |
| Field names must match exactly |